package controller.util;

import javax.faces.application.FacesMessage;
import javax.faces.application.FacesMessage.Severity;
import javax.faces.context.FacesContext;
import javax.servlet.ServletContext;
import javax.servlet.ServletRequest;
import javax.servlet.ServletResponse;
import javax.servlet.http.HttpSession;

public class UtilTela {

	public static ServletRequest getRequest() {
		return (ServletRequest) FacesContext.getCurrentInstance()
				.getExternalContext().getRequest();
	}

	public static ServletContext getServletContext() {
		ServletContext sc = (ServletContext) FacesContext.getCurrentInstance()
				.getExternalContext().getContext();
		return sc;
	}

	public static ServletResponse getResponse() {
		return (ServletResponse) FacesContext.getCurrentInstance()
				.getExternalContext().getResponse();
	}

	public static HttpSession getSession() {
		return (HttpSession) FacesContext.getCurrentInstance()
				.getExternalContext().getSession(false);
	}

	public static void mostraMensagem(String msgResumo, String msgDetalhe,
			Severity severidade) {
		FacesContext.getCurrentInstance().addMessage("msg",
				new FacesMessage(severidade, msgResumo, msgDetalhe));
	}

	public static Object getRequestAttribute(String nomeAtributo) {
		return getRequest().getAttribute(nomeAtributo);
	}

	public static Object getSessionAttribute(String nomeAtributo) {
		return getSession().getAttribute(nomeAtributo);
	}

	public static void repoeObjetoAoEscopo(String nomeObjeto, Object objeto, String escopo) {
		if ("request".equals(escopo)) {
			getRequest().setAttribute(nomeObjeto, objeto);
		} else if ("session".equals(escopo)) {
			getSession().setAttribute(nomeObjeto, objeto);
		} else if ("application".equals(escopo)) {
			getServletContext().setAttribute(nomeObjeto, objeto);
		} else
			throw new RuntimeException("Nenhum escopo válido encontrado");

	}
	
	public static void limpaFormEmpreendimentos() {
		getSession().removeAttribute("CPAEEdificComForm");
		getSession().removeAttribute("CPAEEdificMistaForm");
		getSession().removeAttribute("CPAEEdificMultFamForm");
		getSession().removeAttribute("CPAEEdificUniFamForm");
		getSession().removeAttribute("CPAEGrupComForm");
		getSession().removeAttribute("CPAEGrupMistoForm");
		getSession().removeAttribute("CPAEGrupUnifamForm");
		getSession().removeAttribute("EmpGrResidMultForm");
		getSession().removeAttribute("CPAEloteamComercialLojasSalasForm");
		getSession().removeAttribute("CPAEloteamComercialMistoForm");
		getSession().removeAttribute("CPAEloteamResidMultFamilForm");
		getSession().removeAttribute("CPAEloteamResidUniFamilForm");
		getSession().removeAttribute("IFormEdicaoTipoEmp");
		getSession().removeAttribute("CPAEOutrosAmbForm");
		getSession().removeAttribute("CPAEOutrosCavalForm");
		getSession().removeAttribute("CPAEOutrosCineTeatForm");
		getSession().removeAttribute("CPAEOutrosCrecheForm");
		getSession().removeAttribute("CPAEOutrosEdifPubForm");
		getSession().removeAttribute("CPAEOutrosEscExtForm");
		getSession().removeAttribute("CPAEOutrosEscIntForm");
		getSession().removeAttribute("CPAEOutrosEspecificForm");
		getSession().removeAttribute("CPAEOutrosGaragLavJatoForm");
		getSession().removeAttribute("CPAEOutrosHospitalForm");
		getSession().removeAttribute("CPAEOutrosHotelForm");
		getSession().removeAttribute("CPAEOutrosIndForm");
		getSession().removeAttribute("CPAEOutrosLavandForm");
		getSession().removeAttribute("CPAEOutrosMatGrdPortForm");
		getSession().removeAttribute("CPAEOutrosMatPqPortForm");
		getSession().removeAttribute("CPAEOutrosOrfAsiloForm");
		getSession().removeAttribute("CPAEOutrosPostoServAutForm");
		getSession().removeAttribute("CPAEOutrosQuartelForm");
		getSession().removeAttribute("CPAEOutrosRestForm");
		getSession().removeAttribute("CPAEOutrosTemploForm");
		getSession().removeAttribute("ConsultaTramitacaoCPAEForm");
	}
	
	
}
